<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>数组的排序</title>
</head>

<body>
  <script>
    let arr = [4, 1, 88, 7, 66, 34, 22, 12, 45, 67, 66, 88, 99, 3]

    // 冒泡排序

    //     比较相邻的元素。如果第一个比第二个大，就交换他们两个。
    // 对每一对相邻元素作同样的工作，从开始第一对到结尾的最后一对。这步做完后，最后的元素会是最大的数。
    // 针对所有的元素重复以上的步骤，除了最后一个。
    // 持续每次对越来越少的元素重复上面的步骤，直到没有任何一对数字需要比较。


    // for(let i = 0 ; i<= arr.length-1 ; i++){
    //   for(let j = 1 ; j <= i ; j++){
    //     if(arr[i] < arr[j]){
    //       let temp = 0;
    //       temp = arr[i];
    //       arr[i] = arr[j];
    //       arr[j] = temp
    //     }
    //   }
    // }
    // console.log(arr)

    // 比价前后两个值，若前一个值比后一个值大，则交换位置
    for (let i = 0; i <= arr.length - 1; i++) {
      for (let j = 1; j <= arr.length - 1; j++) {
        if (arr[j] > arr[j + 1]) {
          let temp = arr[j];
          arr[j] = arr[j + 1];
          arr[j + 1] = temp
        }
      }
    }
    console.log(arr)



    // 选择排序
    //     首先在未排序序列中找到最小（大）元素，存放到排序序列的起始位置。
    // 再从剩余未排序元素中继续寻找最小（大）元素，然后放到已排序序列的末尾。
    // 重复第二步，直到所有元素均排序完毕。
    let minIndex = 0
    for (let i = 0; i <= arr.length-1; i++) {
      minIndex = i;
      for (let j = i+1; j <= arr.length; j++) {
        if (arr[minIndex] > arr[j]) {
          minIndex = j;
        }
      }
      let temp = arr[i]
      // console.log(temp)
      arr[i] = arr[minIndex]
      arr[minIndex] = temp

    }
    console.log(arr)


  </script>
</body>

</html>